home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2gem106.lzh / CRYSTAL1.06 / SRC / TOOLBOX / WINDGET.MOD < prev    next >
Encoding:
Modula Implementation  |  1993-01-29  |  4.5 KB  |  230 lines

  1. IMPLEMENTATION MODULE WindGet;
  2.  
  3. (*
  4. WindGet - Functions.
  5.  
  6. UK __DATE__ __TIME__
  7. *)
  8.  
  9. (*IMP_SWITCHES*)
  10.  
  11. FROM AES      IMPORT IntIn,IntOut,crystal,Integer,TreePtr,ObjectIndex,
  12.                      Version;
  13. FROM WindMgr  IMPORT WindowFunctions,Desk,WFBack;
  14. FROM PORTAB   IMPORT UNSIGNEDWORD,SIGNEDWORD;
  15. FROM RcMgr    IMPORT GRect;
  16. FROM SYSTEM   IMPORT ADR;
  17. AES_SYSTEM_IMPORT
  18.  
  19. IMPORT WindMgr;
  20.  
  21. #if Seimet
  22. CONST F104 = 068020500H;
  23.       F105 = 069060100H;
  24. #endif
  25.  
  26. PROCEDURE WorkXYWH(Handle: SIGNEDWORD; VAR Rect: GRect);
  27. BEGIN
  28.   WITH IntIn DO
  29.     Array[0]:= Handle;
  30.     Array[1]:= ORD(WFWorkXYWH);
  31.   END;
  32.   crystal(104,2,5,0);
  33.   WITH Rect DO
  34.     GX:= IntOut[1];
  35.     GY:= IntOut[2];
  36.     GW:= IntOut[3];
  37.     GH:= IntOut[4];
  38.   END;
  39. END WorkXYWH;
  40.  
  41. PROCEDURE CurrXYWH(Handle: SIGNEDWORD; VAR Rect: GRect);
  42. BEGIN
  43.   WITH IntIn DO
  44.     Array[0]:= Handle;
  45.     Array[1]:= ORD(WFCurrXYWH);
  46.   END;
  47.   crystal(104,2,5,0);
  48.   WITH Rect DO
  49.     GX:= IntOut[1];
  50.     GY:= IntOut[2];
  51.     GW:= IntOut[3];
  52.     GH:= IntOut[4];
  53.   END;
  54. END CurrXYWH;
  55.  
  56. PROCEDURE PrevXYWH(Handle: SIGNEDWORD; VAR Rect: GRect);
  57. BEGIN
  58.   WITH IntIn DO
  59.     Array[0]:= Handle;
  60.     Array[1]:= ORD(WFPrevXYWH);
  61.   END;
  62.   crystal(104,2,5,0);
  63.   WITH Rect DO
  64.     GX:= IntOut[1];
  65.     GY:= IntOut[2];
  66.     GW:= IntOut[3];
  67.     GH:= IntOut[4];
  68.   END;
  69. END PrevXYWH;
  70.  
  71. PROCEDURE FullXYWH(Handle: SIGNEDWORD; VAR Rect: GRect);
  72. BEGIN
  73.   WITH IntIn DO
  74.     Array[0]:= Handle;
  75.     Array[1]:= ORD(WFFullXYWH);
  76.   END;
  77.   crystal(104,2,5,0);
  78.   WITH Rect DO
  79.     GX:= IntOut[1];
  80.     GY:= IntOut[2];
  81.     GW:= IntOut[3];
  82.     GH:= IntOut[4];
  83.   END;
  84. END FullXYWH;
  85.  
  86. PROCEDURE HSlide(Handle: SIGNEDWORD): UNSIGNEDWORD;
  87. BEGIN
  88.   WITH IntIn DO
  89.     Array[0]:= Handle;
  90.     Array[1]:= ORD(WFHSlide);
  91.   END;
  92.   crystal(104,2,5,0);
  93.   RETURN IntOut[1];
  94. END HSlide;
  95.  
  96. PROCEDURE VSlide(Handle: SIGNEDWORD): UNSIGNEDWORD;
  97. BEGIN
  98.   WITH IntIn DO
  99.     Array[0]:= Handle;
  100.     Array[1]:= ORD(WFVSlide);
  101.   END;
  102.   crystal(104,2,5,0);
  103.   RETURN IntOut[1];
  104. END VSlide;
  105.  
  106. PROCEDURE Top(): SIGNEDWORD;
  107. BEGIN
  108.   IntIn.Array[1]:= ORD(WFTop);
  109.   crystal(104,2,5,0);
  110.   RETURN IntOut[1];
  111. END Top;
  112.  
  113. PROCEDURE TopAndBelow(VAR Top  : SIGNEDWORD;
  114.                       VAR Id   : SIGNEDWORD;
  115.                       VAR Below: SIGNEDWORD);
  116. BEGIN
  117.   IntIn.Array[1]:= ORD(WFTop);
  118.   crystal(104,2,5,0);
  119.   Top:= IntOut[1];
  120.   Id:= IntOut[2];
  121.   Below:= IntOut[3];
  122. END TopAndBelow;
  123.  
  124. PROCEDURE FirstXYWH(Handle: SIGNEDWORD; VAR Rect: GRect);
  125. BEGIN
  126.   WITH IntIn DO
  127.     Array[0]:= Handle;
  128.     Array[1]:= ORD(WFFirstXYWH);
  129.   END;
  130.   crystal(104,2,5,0);
  131.   WITH Rect DO
  132.     GX:= IntOut[1];
  133.     GY:= IntOut[2];
  134.     GW:= IntOut[3];
  135.     GH:= IntOut[4];
  136.   END;
  137. END FirstXYWH;
  138.  
  139. PROCEDURE NextXYWH(Handle: SIGNEDWORD; VAR Rect: GRect);
  140. BEGIN
  141.   WITH IntIn DO
  142.     Array[0]:= Handle;
  143.     Array[1]:= ORD(WFNextXYWH);
  144.   END;
  145.   crystal(104,2,5,0);
  146.   WITH Rect DO
  147.     GX:= IntOut[1];
  148.     GY:= IntOut[2];
  149.     GW:= IntOut[3];
  150.     GH:= IntOut[4];
  151.   END;
  152. END NextXYWH;
  153.  
  154. PROCEDURE NewDesk(): TreePtr;
  155.  
  156. VAR P: POINTER TO TreePtr;
  157.  
  158. BEGIN
  159.   IntIn.Array[1]:= ORD(WFNewDesk);
  160.   crystal(104,2,3,0);
  161.   P:= NIL;
  162.   P:= ADR(IntOut);
  163.   RETURN P^;
  164. END NewDesk;
  165.  
  166. PROCEDURE HSlSize(Handle: SIGNEDWORD): SIGNEDWORD;
  167. BEGIN
  168.   WITH IntIn DO
  169.     Array[0]:= Handle;
  170.     Array[1]:= ORD(WFHSlSize);
  171.   END;
  172.   crystal(104,2,5,0);
  173. #if long
  174.   RETURN LONG(IntOut[1]);
  175. #else
  176.   RETURN IntOut[1];
  177. #endif
  178. END HSlSize;
  179.  
  180. PROCEDURE VSlSize(Handle: SIGNEDWORD): SIGNEDWORD;
  181. BEGIN
  182.   WITH IntIn DO
  183.     Array[0]:= Handle;
  184.     Array[1]:= ORD(WFVSlSize);
  185.   END;
  186.   crystal(104,2,5,0);
  187. #if long
  188.   RETURN LONG(IntOut[1]);
  189. #else
  190.   RETURN IntOut[1];
  191. #endif
  192. END VSlSize;
  193.  
  194. PROCEDURE Owner(    Handle: SIGNEDWORD;
  195.                 VAR Open  : BOOLEAN;
  196.                 VAR Above : SIGNEDWORD;
  197.                 VAR Below : SIGNEDWORD): SIGNEDWORD;
  198. BEGIN
  199.   IntIn.Array[0]:= Handle;
  200.   IntIn.Array[1]:= ORD(WindMgr.WFOwner);
  201.   crystal(104,2,4,0);
  202.   Open:= IntOut[2] = 1;
  203.   Above:= IntOut[3];
  204.   Below:= IntOut[4];
  205.   RETURN IntOut[1];
  206. END Owner;
  207.  
  208. PROCEDURE BEvent(Handle: SIGNEDWORD): BOOLEAN;
  209. BEGIN
  210.   WITH IntIn DO
  211.     Array[0]:= Handle;
  212.     Array[1]:= ORD(WindMgr.WFBEvent);
  213.     Array[2]:= 0;
  214.     Array[3]:= 0;
  215.     Array[4]:= 0;
  216.     Array[5]:= 0;
  217.   END;
  218.   crystal(104,2,2,0);
  219.   RETURN IntOut[1] = 1;
  220. END BEvent;
  221.  
  222. PROCEDURE Bottom(): SIGNEDWORD;
  223. BEGIN
  224.   IntIn.Array[1]:= ORD(WindMgr.WFBottom);
  225.   crystal(104,2,2,0);
  226.   RETURN IntOut[1];
  227. END Bottom;
  228.  
  229. END WindGet.
  230.